﻿using BLevy.Entidad;
using BLevy.Negocio;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmGrupoFamiliarReactivar : Form
    {
        int idSocio;

        public frmGrupoFamiliarReactivar()
        {
            InitializeComponent();
        }

        private void frmGrupoFamiliarReactivar_Load(object sender, EventArgs e)
        {
            inicializar();
        }

        private void inicializar()
        {
            idSocio = 0;
            error.Clear();
            txtCertificado.Text = string.Empty;
            txtDNI.Text = string.Empty;
            txtDNI.Enabled = false;
            txtApellido.Text = string.Empty;
            txtApellido.Enabled = false;
            txtNombres.Text = string.Empty;
            txtNombres.Enabled = false;

            txtCertificado.Focus();
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            error.Clear();

            Regex regex = new Regex(@"[\d]([.,][\d])?");

            try
            {
                if (!regex.IsMatch(txtCertificado.Text))
                {
                    error.SetError(txtCertificado, "Debe ingresar un número de certificado.");
                }
                else
                {
                    if (!string.IsNullOrEmpty(txtCertificado.Text))
                    {
                        Socio _socio = Negocio.Socios.FindByCertificado(Convert.ToInt32(txtCertificado.Text));
                        if (_socio != null)
                        {
                            if (_socio.activo == 0)
                            {
                                idSocio = _socio.id;
                                txtDNI.Text = _socio.documento;
                                txtApellido.Text = _socio.apellido;
                                txtNombres.Text = _socio.nombres;
                            }
                            else
                            {
                                MessageBox.Show("El socio con el certificado ingresado no se encuentra inactivo, verifique el número de certificado e intente nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                txtCertificado.SelectAll();
                            }
                        }
                        else
                        {
                            MessageBox.Show("No se ha encontrado el socio con el número de certificado ingresado, verifique el número de certificado e intente nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Debe ingresar un número de certificado válido, verifique el número de certificado e intente nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnReactivar_Click(object sender, EventArgs e)
        {
            try
            {
                if (idSocio != 0)
                {
                    DialogResult dr = MessageBox.Show("¿Desea reactivar el asociado seleccionado?", "Atención", MessageBoxButtons.YesNo);
                    if (dr == System.Windows.Forms.DialogResult.Yes)
                    {
                        try
                        {
                            SocioBaja reactivar = new SocioBaja();
                            reactivar.socio_id = idSocio;
                            reactivar.fecha = DateTime.Now;
                            reactivar.motivo = "REACTIVACION";
                            reactivar.operacion = "R";
                            reactivar.tipo_baja = "M";

                            int resultado = Negocio.Socios.SocioReactivar(idSocio, reactivar);
                            if (resultado > 0)
                            {
                                MessageBox.Show("Los datos se registraron correctamente.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                this.DialogResult = System.Windows.Forms.DialogResult.Yes;
                                this.Close();
                            }
                            else
                            {
                                MessageBox.Show("Ocurrio un error al registrar los datos. Intente Nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
